package com.vhall.component.entity.room.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * @author lsl
 * @since 2021/4/19
 */
@Data
@TableName("room_joins")
@JsonInclude(JsonInclude.Include.NON_NULL)
@ApiModel(value = "RoomJoinsEntity对象", description = "房间加入情况表")
public class RoomJoinsEntity implements Serializable {
    private static final long serialVersionUID = -7370501641178285960L;

    @ApiModelProperty(value = "加入id")
    @TableId(value = "join_id", type = IdType.AUTO)
    private Integer joinId;

    @ApiModelProperty(value = "PAAS直播房间id")
    @TableField("room_id")
    private String roomId;

    @ApiModelProperty(value = "用户id")
    @TableField("account_id")
    private Integer accountId;

    @ApiModelProperty(value = "用户账号")
    @TableField("username")
    private String username;

    @ApiModelProperty(value = "用户昵称")
    @TableField("nickname")
    private String nickname;

    @ApiModelProperty(value = "用户头像")
    @TableField("avatar")
    private String avatar;

    @ApiModelProperty(value = "角色信息，1主持人2观众3助理4嘉宾")
    @TableField("role_name")
    private String roleName;

    @ApiModelProperty(value = "是否禁言，1是0否")
    @TableField("is_banned")
    private Integer isBanned;

    @ApiModelProperty(value = "是否踢出，1是0否")
    @TableField("is_kicked")
    private Integer isKicked;

    @ApiModelProperty(value = "设备类型，0未检测 1手机端 2PC 3SDK")
    @TableField("device_type")
    private Integer deviceType;

    @ApiModelProperty(value = "设备状态，0未检测1可以上麦2不可以上麦")
    @TableField("device_status")
    private Integer deviceStatus;

    @ApiModelProperty(value = "是否签到：1 是 0 否")
    @TableField("is_signed")
    private Integer isSigned;

    @ApiModelProperty(value = "是否回答过问卷：1 是 0 否")
    @TableField("is_answered_questionnaire")
    private Integer isAnsweredQuestionnaire;

    @ApiModelProperty(value = "是否已经成为抽奖中奖者：1 是 0 否")
    @TableField("is_lottery_winner")
    private Integer isLotteryWinner;

    @ApiModelProperty(value = "是否投过票：1 是 0 否")
    @TableField("is_answered_vote")
    private Integer isAnsweredVote;

    @ApiModelProperty(value = "是否回答过试卷：1 是 0 否")
    @TableField("is_answered_exam")
    private Integer isAnsweredExam;

    @ApiModelProperty(value = "在线状态：0 离线 1 在线")
    @TableField("`status`")
    private Integer status;

    @TableField("created_at")
    private LocalDateTime createdAt;

    @TableField("updated_at")
    private LocalDateTime updatedAt;

    @TableField("deleted_at")
    private LocalDateTime deletedAt;

    @ApiModelProperty(value = "报表id")
    @TableField("form_id")
    private Integer formId;

    /**
     * 用户进入次数
     */
    @TableField(value = "user_join_count")
    private Integer userJoinCount;

    /**
     * 是否直播前进入:开播前进入:1,开播后进入:0
     */
    @TableField(value = "pre_live")
    private Integer preLive;

    /**
     * 首次开播前进入时间
     */
    @TableField(value = "first_pre_live_time")
    private LocalDateTime firstPreLiveTime;
}
